Multi PivotsThis script is meant for day traders. It's based on the CPR concepts. The pivots plots based on the timeframe, means less that 15minuts it will plot daily pivots, less that daily tf, it plots weekly and then monthly. It also includes Camarillas, ADR levels, Fibonacci levels based on last 500 candles, Fib pivots, Pivot zones, developing pivot, Vwap, Dashboard shows RSI,ADX,Vwap,SuperTrend and day price difference. Options available to plot Day HighLow, Initial Balance levels as well. There is option to show running CPR which highlights virgin CPR. It can plot next day pivots as well
I dont own any of codes or ideas in the script. Codes are taken from different scripts and altered based on the requirements. Kudos to all the great pinecoders who provided their codes as public which helps everyone. Thanks
ابحث في النصوص البرمجية عن "THE SCRIPT"
lower_tf█ OVERVIEW
This library is a Pine programmer’s tool containing functions to help those who use the request.security_lower_tf() function. Its `ltf()` function helps translate user inputs into a lower timeframe string usable with request.security_lower_tf() . Another function, `ltfStats()`, accumulates statistics on processed chart bars and intrabars.
█ CONCEPTS
Chart bars
Chart bars , as referred to in our publications, are bars that occur at the current chart timeframe, as opposed to those that occur at a timeframe that is higher or lower than that of the chart view.
Intrabars
Intrabars are chart bars at a lower timeframe than the chart's. Each 1H chart bar of a 24x7 market will, for example, usually contain 60 intrabars at the LTF of 1min, provided there was market activity during each minute of the hour. Mining information from intrabars can be useful in that it offers traders visibility on the activity inside a chart bar.
Lower timeframes (LTFs)
A lower timeframe is a timeframe that is smaller than the chart's timeframe. This framework exemplifies how authors can determine which LTF to use by examining the chart's timeframe. The LTF determines how many intrabars are examined for each chart bar; the lower the timeframe, the more intrabars are analyzed.
Intrabar precision
The precision of calculations increases with the number of intrabars analyzed for each chart bar. As there is a 100K limit to the number of intrabars that can be analyzed by a script, a trade-off occurs between the number of intrabars analyzed per chart bar and the chart bars for which calculations are possible.
█ `ltf()`
This function returns a timeframe string usable with request.security_lower_tf() . It calculates the returned timeframe by taking into account a user selection between eight different calculation modes and the chart's timeframe. You send it the user's selection, along with the text corresponding to the eight choices from which the user has chosen, and the function returns a corresponding LTF string.
Because the function processes strings and doesn't require recalculation on each bar, using var to declare the variable to which its result is assigned will execute the function only once on bar zero and speed up your script:
var string ltfString = ltf(ltfModeInput, LTF1, LTF2, LTF3, LTF4, LTF5, LTF6, LTF7, LTF8)
The eight choices users can select from are of two types: the first four allow a selection from the desired amount of chart bars to be covered, the last four are choices of a fixed number of intrabars to be analyzed per chart bar. Our example code shows how to structure your input call and then make the call to `ltf()`. By changing the text associated with the `LTF1` to `LTF8` constants, you can tailor it to your preferences while preserving the functionality of `ltf()` because you will be sending those string constants as the function's arguments so it can determine the user's selection. The association between each `LTFx` constant and its calculation mode is fixed, so the order of the arguments is important when you call `ltf()`.
These are the first four modes and the `LTFx` constants corresponding to each:
Covering most chart bars (least precise) — LTF1
Covers all chart bars. This is accomplished by dividing the current timeframe in seconds by 4 and converting that number back to a string in timeframe.period format using secondsToTfString() . Due to the fact that, on premium subscriptions, the typical historical bar count is between 20-25k bars, dividing the timeframe by 4 ensures the highest level of intrabar precision possible while achieving complete coverage for the entire dataset with the maximum allowed 100K intrabars.
Covering some chart bars (less precise) — LTF2
Covering less chart bars (more precise) — LTF3
These levels offer a stepped LTF in relation to the chart timeframe with slightly more, or slightly less precision. The stepped lower timeframe tiers are calculated from the chart timeframe as follows:
Chart Timeframe Lower Timeframe
Less Precise More Precise
< 1hr 1min 1min
< 1D 15min 1min
< 1W 2hr 30min
> 1W 1D 60min
Covering the least chart bars (most precise) — LTF4
Analyzes the maximum quantity of intrabars possible by using the 1min LTF, which also allows the least amount of chart bars to be covered.
The last four modes allow the user to specify a fixed number of intrabars to analyze per chart bar. Users can choose from 12, 24, 50 or 100 intrabars, respectively corresponding to the `LTF5`, `LTF6`, `LTF7` and `LTF8` constants. The value is a target; the function will do its best to come up with a LTF producing the required number of intrabars. Because of considerations such as the length of a ticker's session, rounding of the LTF to the closest allowable timeframe, or the lowest allowable timeframe of 1min intrabars, it is often impossible for the function to find a LTF producing the exact number of intrabars. Requesting 100 intrabars on a 60min chart, for example, can only produce 60 1min intrabars. Higher chart timeframes, tickers with high liquidity or 24x7 markets will produce optimal results.
█ `ltfStats()`
`ltfStats()` returns statistics that will be useful to programmers using intrabar inspection. By analyzing the arrays returned by request.security_lower_tf() in can determine:
• intrabarsInChartBar : The number of intrabars analyzed for each chart bar.
• chartBarsCovered : The number of chart bars where intrabar information is available.
• avgIntrabars : The average number of intrabars analyzed per chart bar. Events like holidays, market activity, or reduced hours sessions can cause the number of intrabars to vary, bar to bar.
The function must be called on each bar to produce reliable results.
█ DEMONSTRATION CODE
Our example code shows how to provide users with an input from which they can select a LTF calculation mode. If you use this library's functions, feel free to reuse our input setup code, including the tooltip providing users with explanations on how it works for them.
We make a simple call to request.security_lower_tf() to fetch the close values of intrabars, but we do not use those values. We simply send the returned array to `ltfStats()` and then plot in the indicator's pane the number of intrabars examined on each bar and its average. We also display an information box showing the user's selection of the LTF calculation mode, the resulting LTF calculated by `ltf()` and some statistics.
█ NOTES
• As in several of our recent publications, this script uses secondsToTfString() to produce a timeframe string in timeframe.period format from a timeframe expressed in seconds.
• The script utilizes display.data_window and display.status_line to restrict the display of certain plots.
These new built-ins allow coders to fine-tune where a script’s plot values are displayed.
• We implement a new recommended best practice for tables which works faster and reduces memory consumption.
Using this new method, tables are declared only once with var , as usual. Then, on bar zero only, we use table.cell() calls to populate the table.
Finally, table.set_*() functions are used to update attributes of table cells on the last bar of the dataset.
This greatly reduces the resources required to render tables. We encourage all Pine Script™ programmers to do the same.
Look first. Then leap.
█ FUNCTIONS
The library contains the following functions:
ltf(userSelection, choice1, choice2, choice3, choice4, choice5, choice6, choice7, choice8)
Selects a LTF from the chart's TF, depending on the `userSelection` input string.
Parameters:
userSelection : (simple string) User-selected input string which must be one of the `choicex` arguments.
choice1 : (simple string) Input selection corresponding to "Least precise, covering most chart bars".
choice2 : (simple string) Input selection corresponding to "Less precise, covering some chart bars".
choice3 : (simple string) Input selection corresponding to "More precise, covering less chart bars".
choice4 : (simple string) Input selection corresponding to "Most precise, 1min intrabars".
choice5 : (simple string) Input selection corresponding to "~12 intrabars per chart bar".
choice6 : (simple string) Input selection corresponding to "~24 intrabars per chart bar".
choice7 : (simple string) Input selection corresponding to "~50 intrabars per chart bar".
choice8 : (simple string) Input selection corresponding to "~100 intrabars per chart bar".
Returns: (simple string) A timeframe string to be used with `request.security_lower_tf()`.
ltfStats()
Returns statistics about analyzed intrabars and chart bars covered by calls to `request.security_lower_tf()`.
Parameters:
intrabarValues : (float [ ]) The ID of a float array containing values fetched by a call to `request.security_lower_tf()`.
Returns: A 3-element tuple: [ (series int) intrabarsInChartBar, (series int) chartBarsCovered, (series float) avgIntrabars ].
DMI StrategyThis strategy is based on DMI indicator. It helps me to identify base or top of the script. I mostly use this script to trade in Nifty bank options, even when the signal comes in nifty. It can be used to trade in other scripts as well. Pivot points can also be used to take entry. Long entry is taken when DI+(11) goes below 10 and DI-(11) goes above 40, whereas short entry is taken when DI-(11) goes below 10 and DI+(11) goes above 40.
For bank nifty, I take the trade in the strike price for which the current premium is nearby 300, with the SL of 20%. If premium goes below 10% I buy one more lot to average, but exit if the premium goes below 20% of the first entry. If the trade moves in the correct direction, we need to start trailing our stoploss or exit at the pre-defined target.
Please have a look at strategy tester to back test.
Bitcoin Risk Long Term indicatorOBJECTIVE:
The purpose of this indicator is to synthesize via an average several indicators from a wide choice with in order to simplify the reading of the bitcoin price and that on a long term vision.
Useful for those who want to see things simply, typically to make a smart DCA based on risk.
I originally used this script as a sandbox to understand and test the usefulness of several indicators, and to develop my PineScript skills, but finally the Risk Indicator output seems relevant so I decided to share it.
USAGE:
The selected indicators are the ones that I think give the best market bottoms, but the idea here is that anyone can try and use any set of indicators based on those preferences (post in comments if you find a relevant config)
Most of the indicator inputs are configurable. And some are not taken into account in the calculation of the Risk indicator because I consider them not relevant, this script is also a test more than a final version.
NOTES :
If you have any idea of adding an indicator, modification, criticism, bug found: share them, it is appreciated!
In the future I will create another more versatile Risk indicator that will not be focused on bitcoin in weekly. (this indicator is still usable on other assets and timeframe)
THANKS:
to Benjamin Cowen for inspiring me with his Bitcoin Risk metric
to Lazybear for his Wavetrend Indicator and all the scripts he shares
to Mabonyi for his Bitcoin Logarithmic Growth Curves & Zones script
to VuManChu for his VMC Cypher B Divergence
to the Trading view team for developing TV and PineScript
And to all the community for all the published codes that allowed me to progress and create this script
---- FR ----
OBJECTIF :
L'objectif de cet indicateur est de synthétiser via une moyenne plusieurs indicateurs parmi un large choix avec afin de simplifier la lecture du cours de bitcoin et cela sur une vision longue terme.
Utile pour ceux qui veulent voir les choses simplement, typiquement faire un DCA intelligent en fonction du risque.
À la base j'ai utilisé ce script comme un bac à sable pour comprendre puis tester l'utilité de plusieurs indicateurs, et développer mes compétences PineScript, mais finalement l'output Risk Indicateur me semble pertinent donc autant le partager.
UTILISATION :
Les indicateurs sélectionnés sont ceux qui permettent selon moi d'avoir les meilleurs point bas de marché, mais l'idée ici est que chacun puisse essayer et utiliser n'importe quel ensemble d'indicateur en fonction de ces préférences (poster en commentaire si vous trouvez une configuration pertinente)
La plupart des inputs indicateurs sont paramétrables. Et certains ne sont pas pris en compte dans le calcul du Risk indicateur car je les estime non pertinent, ce script est aussi un essai plus qu'une version finale.
NOTES :
Si vous avez la moindre idée d'ajout d'indicateur, modification, critique, bug trouvé : partagez-les, c'est apprécié !
à l'avenir je créerais un autre Risk indicator plus polyvalent qui ne sera pas focalisé sur bitcoin en weekly. (cet indicateur est tout de même utilisable sur d'autre actif et timeframe)
REMERCIEMENT :
à Benjamin Cowen pour m'avoir inspiré avec son Bitcoin Risk metric
à Lazybear pour son Wavetrend Indicator et globalement tout les scripts qu'il partage
à Mabonyi pour son script Bitcoin Logarithmic Growth Curves & Zones
à VuManChu pour son VMC Cypher B Divergence
à l'équipe Trading view pour avoir développé TV et PineScript
Et à toute la communauté pour tous les codes publiés qui m'ont permis de progresser et de créer ce script
Advanced Volume ProfileTHIS SCRIPT CURRENTLY ONLY WORKS FOR ASSETS THAT TRADE 24/7 OR CBOE FUTURES HOURS!
This script plots volume relative to an asset's historical volume profile.
Usage:
As a companion to my "Unusual Time Frame Volume" (UTF Volume) script, this plots volume against the same historical volume profile used for UTF Volume.
The same high volume (relative to historical) threshold alert is available (yellow bar).
Likewise, if the volume exceeds the historical threshold, but is below the alert threshold, the bar color is orange.
At the top of the chart is an indicator which is green if a bar has higher volume than the previous bar.
You can also set a threshold for this such that if the volume of a bar exceeds the previous bar by a certain multiplier which will turn the indicator yellow.
For example, if the threshold is set to "1.5", then the indicator will be yellow (instead of green) on an increase in volume over the previous bar of 1.5x.
NOTES:
Again, this script currently only works for assets that trade 24/7 or CBOE Futures hours!
Make sure you set the "Asset Mode" and "Time Frame (minutes)" to values that match your asset and chart setting.
For example, if you are trading Futures on a 2m chart, set the Asset Mode to Futures and Time Frame to 2m.
If you are trading crypto on a 5m chart, set the Asset Mode to 24/7 and Time Frame to 5m.
If the settings are not set appropriately, the output will be incorrect/invalid.
If you choose a "Look-back (Days)" setting that is too far back given the time frame, the script will produce an error.
I suggest playing with settings from "1" (compares volume to the previous day's volume) to the highest number that doesn't break the script.
For example, at a 2m time frame, the maximum look-back will be "6" or "7" depending on which mode you are using.
Longer chart time settings allow larger look-back values.
I find that the default value ("6") does a decent job in general.
Please feel free to reuse or further develop this script.
I would greatly appreciate it if you would send me a message below if you find it useful.
[CLX][#03] Object-Stack (Labels/Lines/Boxes)This script shows an example of how to manage objects (lines/labels/boxes) and prevent the need of garbage collecting and missing objects.
You only have to push your object into the right array.
*_FIXED (left-lock) or *_FORWARD (right-lock)
We hope you enjoy it! 🎉
CRYPTOLINX - jango_blockchained 😊👍
Disclaimer:
Trading success is all about following your trading strategy and the indicators should fit within your trading strategy, and not to be traded upon solely.
The script is for informational and educational purposes only. Use of the script does not constitute professional and/or financial advice. You alone have the sole responsibility of evaluating the script output and risks associated with the use of the script. In exchange for using the script, you agree not to hold cryptolinx TradingView user liable for any possible claim for damages arising from any decision you make based on use of the script.
[CLX][#02] Registry (type-based)This script only provides a basic __setter and __getter registration function with a type-based limitation.
We don't want to blow the code with additional conditions. The suggestion was to get the basic functionality.
Benefits:
- Get/set/update global-like variables between functions
- No init needed. You can call a entry before you set it.
Get-Functions:
- f_reg_getInt(_key)
- f_reg_getFloat(_key)
- f_reg_getBool(_key)
- f_reg_getString(_key)
- f_reg_getColor(_key)
- f_reg_getLabel(_key)
- f_reg_getLine(_key)
Set-Functions:
- f_reg_setInt(_key, _value)
- f_reg_setFloat(_key, _value)
- f_reg_setBool(_key, _value)
- f_reg_setString(_key, _value)
- f_reg_setColor(_key, _value)
- f_reg_setLabel(_key, _value)
- f_reg_setLine(_key, _value)
Feel free to contribute for an extended version. :)
We hope you enjoy it! 🎉
CRYPTOLINX - jango_blockchained 😊👍
Disclaimer:
Trading success is all about following your trading strategy and the indicators should fit within your trading strategy, and not to be traded upon solely.
The script is for informational and educational purposes only. Use of the script does not constitute professional and/or financial advice. You alone have the sole responsibility of evaluating the script output and risks associated with the use of the script. In exchange for using the script, you agree not to hold dgtrd TradingView user liable for any possible claim for damages arising from any decision you make based on use of the script.
[CLX][#01] Animation - Price Ticker (Marquee)This indicator displays a classic animated price ticker overlaid on the user’s current chart. It is possible to fully customize it or to select one of the predefined styles.
A detailed description will follow in the next few days.
Used Pinescript technics:
- varip (view/animation)
- tulip instance (config/codestructur)
- table (view/position)
By the way, for me, one of the coolest animated effects is by Duyck
We hope you enjoy it! 🎉
CRYPTOLINX - jango_blockchained 😊👍
Disclaimer:
Trading success is all about following your trading strategy and the indicators should fit within your trading strategy, and not to be traded upon solely.
The script is for informational and educational purposes only. Use of the script does not constitute professional and/or financial advice. You alone have the sole responsibility of evaluating the script output and risks associated with the use of the script. In exchange for using the script, you agree not to hold dgtrd TradingView user liable for any possible claim for damages arising from any decision you make based on use of the script.
Repulse-AORepulsion Engine is a proof of concept for a series of indicators using repulsion, as re-contextualized from the following:
www.quantamagazine.org
In my view, the technique is unique, and therefore a new category of indicator, but that distinction will, obviously, be left to the community and to the moderators. One thing that can be said is repulsion appears to be applicable to more than RSI, and while it's not featured here, it has been tested in other related work using SMA, EMA and HMA signal artefacts. Still, the script is raw and not overly clean. One might hope for a git-like versioning system and vertically oriented script window, but that would be playing the blame game, and I would lose that battle. Trading View is awesome as it is and getting better all the time.
This script features an experimental oscillator branch, also utilising some off-in-left-field number theory by which a link is posited to have been made to a fractal domain, around which the oscillator 'more subtly' picks up price movement. Three interrelated pairs are involved, but to avoid long-winded explanation, you might want to just play with changing out XRPUSDT and XRPBTC for two other similarly related securities. Several other scripts on the workbench over here automate this process.
No doubt, more able programmers will easily enhance this and other scripts which arise. If there's interest in this one, more of the raw 'it's not really ready' scripts will likely follow, so people can dig in and do their own mashups sooner rather than later, tossing what is bad and enhancing what is good.
It might be better, and garner a lot less flaming, if this indicator is described as experimental all the way through.
Stubs are present here for users to test performance on their own.
I hope you get something out of it, and if you make one of your own or move this along to a higher standard that you drop me a line to let me know. I'm always eager to learn and to grow.
Reversal with Bollinger Bands + RSI + ADX + ATR (Upgraded)Hi,
Welcome to my 4th script.
Someone asked me some questions about the Bollinger Band strategy I previously published. When I went back to my published script I couldn't help myself but simply try and make it better. Which I did.
Since I've published that script, I've gained much more knowledge about how Pinescript functions. As well as gaining more and more knowledge about how the markets are structered etc.
In this reversal script we use 4 indicators to determine good entry signals, we determine whether the market is ranging or trending and we still only want to take trades in the direction of the "trend".
Bollinger Bands are used for our entry signal. When price hits either side of the band, we wait for a reverse candlestick before we enter a position.
RSI is used to determine if we're in a trending market or in a ranging market. You can adjust the values in the inputs. You can determine the minimum RSI value and the maximum RSI value.
ADX is used the same way as RSI, you can adjust the value in the inputs. You can determine the minimum ADX value.
Last but not least we use two EMA's, a 200 EMA and 100 EMA. Both are adjustable through the inputs. I used two EMA's because I noticed when using this strategy that we'd enter a new position often after having a bad trade. Using two EMA's might clean up some signals, in my case with EUR/USD on a 15m timeframe, it didn't clean up enough signals.
All the default values are pretty decent but might require some finetuning on a certain instrument. Don't overfit the strategy though, that'll only give you bad signals in the future.
Then we are off to our exit signals.
Initially I wanted to incorporate my previous Bollinger Band exit signals as well, but it was too much of a hassle to make the script work as intended so I left it out. If you want to use those exit signals, just find my other script.
When we're in a position and price crosses the opposite band, we wait for a reverse candlestick before we exit the position.
Additionally we want our losses to be as small as possible, so we use RSI to signal us when the market is, or starts to, trend against us. This is where you use the minimum and maximum exit values. So when RSI crosses over or under that value, it'll exit the position.
Furthermore, we use the ATR indicator to set our stop loss, which is pretty basic stuff. You can adjust the ATR multiplier in the inputs. Disabling "Use Trailing Stop?" is really inadvisable unless you know this script inside out as your only exit signals will be opposite Bollinger Band Cross and RSI overbought / oversold areas.
Pearsons R historic breaks ( for making strategy out of it )Pearsons R adjustments of linear regressions is a good tool to analyse visually the trend basis channeling of the market,
one of the common challenges in the scripts which i came across the tradingview community is the lack of the historic places put over the charts where the price actually crossed up/below the channel boundaries,
For me in order to do so we would have to replay the scripts over and over.
So I came up with an addon extension to a good script on the community ()
I have added the historic marks over the charts ( blue/green/red/orange Arrows which you see on the charts)
These arrows are the places where the price have crossed the channel boundaries historically
So,
Blue arrow = Bull Intent ,Place where the upper channel boundary line have been crossed
Orange arrow = Bear Intent , Place where the Lower channel boundary line have been crossed
Green arrow = Bull Max , Place where the Maximum Upper channel boundary line have been crossed
Red arrow = Bear Max , Place where the Minimum Lower channel boundary line have been crossed
For me this type of approach is good for making a strategy out of the concepts visually, in congestion to other indicators
I would suggest you guys to check this on alert basis with your setups to derive out the best from linear regressions
Lastly it would be a pleasure to give credits to the creators of Pearsons R scripts in Tradingview
@midtownsk8rguy
@TradeBoneDogs
@x11joe
Also thanking Tradingview for providing us such an awesome community and platform :)
MTF Oscillator Framework [PineCoders]This framework allows Pine coders to quickly build a complete multi-timeframe oscillator from any calculation producing values around a centerline, whether the values are bounded or not. Insert your calculation in the script and you have a ready-to-publish MTF Oscillator offering a plethora of presentation options and features.
█ HOW TO USE THE FRAMEWORK
1 — Insert your calculation in the `f_signal()` function at the top of the "Helper Functions" section of the script.
2 — Change the script's name in the `study()` declaration statement and the `alertcondition()` text in the last part of the "Plots" section.
3 — Adapt the default value used to initialize the CENTERLINE constant in the script's "Constants" section.
4 — If you want to publish the script, copy/paste the following description in your new publication's description and replace the "OVERVIEW" section with a description of your calculations.
5 — Voilà!
═════════════════════════════════════════════════════════════════════════
█ OVERVIEW
This oscillator calculates a directional value of True Range. When a bar is up, the positive value of True Range is used. A negative value is used when the bar is down. When there is no movement during the bar, a zero value is generated, even if True Range is different than zero. Because the unit of measure of True Range is price, the oscillator is unbounded (it does not have fixed upper/lower bounds).
True Range can be used as a metric for volatility, but by using a signed value, this oscillator will show the directional bias of progressively increasing/decreasing volatility, which can make it more useful than an always positive value of True Range.
The True Range calculation appeared for the first time in J. Welles Wilder's New Concepts in Technical Trading Systems book published in 1978. Wilder's objective was to provide a reliable measure of the effective movement—or range—between two bars, to measure volatility. True Range is also the building block used to calculate ATR (Average True Range), which calculates the average of True Range values over a given period using the `rma` averaging method—the same used in the calculation of another of Wilder's remarkable creations: RSI.
█ CONCEPTS
This oscillator's design stems from a few key concepts.
Relative Levels
Other than the centerline, relative rather than absolute levels are used to identify levels of interest. Accordingly, no fixed levels correspond to overbought/oversold conditions. Relative levels of interest are identified using:
• A Donchian channel (historical highs/lows).
• The oscillator's position relative to higher timeframe values.
• Oscillator levels following points in time where a divergence is identified.
Higher timeframes
Two progressively higher timeframes are used to calculate larger-context values for the oscillator. The rationale underlying the use of timeframes higher than the chart's is that, while they change less frequently than the values calculated at the chart's resolution, they are more meaningful because more work (trader activity) is required to calculate them. Combining the immediacy of values calculated at the chart's resolution to higher timeframe values achieves a compromise between responsiveness and reliability.
Divergences as points of interest rather than directional clues
A very simple interpretation of what constitutes a divergence is used. A divergence is defined as a discrepancy between any bar's direction and the direction of the signal line on that same bar. No attempt is made to attribute a directional bias to divergences when they occur. Instead, the oscillator's level is saved and subsequent movement of the oscillator relative to the saved level is what determines the bullish/bearish state of the oscillator.
Conservative coloring scheme
Several additive coloring conditions allow the bull/bear coloring of the oscillator's main line to be restricted to specific areas meeting all the selected conditions. The concept is built on the premise that most of the time, an oscillator's value should be viewed as mere noise, and that somewhat like price, it only occasionally conveys actionable information.
█ FEATURES
Plots
• Three lines can be plotted. They are named Main line , Line 2 and Line 3 . You decide which calculation to use for each line:
• The oscillator's value at the chart's resolution.
• The oscillator's value at a medium timeframe higher than the chart's resolution.
• The oscillator's value at the highest timeframe.
• An aggregate line calculated using a weighed average of the three previous lines (see the Aggregate Weights section of Inputs to configure the weights).
• The coloring conditions, divergence levels and the Hi/Lo channel always apply to the Main line, whichever calculation you decide to use for it.
• The color of lines 2 and 3 are fixed but can be set in the "Colors" section of Inputs.
• You can change the thickness of each line.
• When the aggregate line is displayed, higher timeframe values are only used in its calculation when they become available in the chart's history,
otherwise the aggregate line would appear much later on the chart. To indicate when each higher timeframe value becomes available,
a small label appears near the centerline.
• Divergences can be shown as small dots on the centerline.
• Divergence levels can be shown. The level and fill are determined by the oscillator's position relative to the last saved divergence level.
• Bull/bear markers can be displayed. They occur whenever a new bull/bear state is determined by the "Main Line Coloring Conditions".
• The Hi/Lo (Donchian) channel can be displayed, and its period defined.
• The background can display the state of any one of 11 different conditions.
• The resolutions used for the higher timeframes can be displayed to the right of the last bar's value.
• Four key values are always displayed in the Data Window (fourth icon down to the right of your chart):
oscillator values for the chart, medium and highest timeframes, and the oscillator's instant value before it is averaged.
Main Line Coloring Conditions
• Nine different conditions can be selected to determine the bull/bear coloring of the main line. All conditions set to "ON" must be met to determine the bull/bear state.
• A volatility state can also be used to filter the conditions.
• When the coloring conditions and the filter do not allow for a bull/bear state to be determined, the neutral color is used.
Signal
• Seven different averages can be used to calculate the average of the oscillator's value.
• The average's period can be set. A period of one will show the instant value of the oscillator,
provided you don't use linear regression or the Hull MA as they do not work with a period of one.
• An external signal can be used as the oscillator's instant value. If an already averaged external value is used, set the period to one in this indicator.
• For the cases where an external signal is used, a centerline value can be set.
Higher Timeframes
• The two higher timeframes are named Medium timeframe and Highest timeframe . They can be determined using one of three methods:
• Auto-steps: the higher timeframes are determined using the chart's resolution. If the chart uses a seconds resolution, for example,
the medium and highest resolutions will be 15 and 60 minutes.
• Multiples: the timeframes are calculated using a multiple of the chart's resolution, which you can set.
• Fixed: the set timeframes do not change with the chart's resolution.
Repainting
• Repainting can be controlled separately for the chart's value and the higher timeframe values.
• The default is a repainting chart value and non-repainting higher timeframe values. The Aggregate line will thus repaint by default,
as it uses the chart's value along with the higher timeframes values.
Aggregate Weights
• The weight of each component of the Aggregate line can be set.
• The default is equal weights for the three components, meaning that the chart's value accounts for one third of the weight in the Aggregate.
High Volatility
• This provides control over the volatility filter used in the Main line's coloring conditions and the background display.
• Volatility is determined to be high when the short-term ATR is greater than the long-term ATR.
Colors
• You can define your own colors for all of the oscillator's plots.
• The default colors will perform well on both white and black chart backgrounds.
Alerts
• An alert can be defined for the script. The alert will trigger whenever a bull/bear marker appears in the indicator's display.
The particular combination of coloring conditions and the display of bull/bear markers when you create the alert will thus determine when the alert triggers.
Once the alerts are created, subsequent changes to the conditions controlling the display of markers will not affect the existing alert(s).
• You can create multiple alerts from this script, each triggering on different conditions.
Backtesting & Trading Engine Signal Line
• An invisible plot named "BTE Signal" is provided. It can be used as an entry signal when connected to the PineCoders Backtesting & Trading Engine as an external input.
It will generate an entry whenever a marker is displayed.
Look first. Then leap.
RSI on VWAP Upgraded strategyFirst of all, the idea of apply RSI to VWAP was inspired by XaviZ; at least, that where I first saw that.
I simply applied the idea and searched for apply this on lower timeframe (M15) to increase the number of positions and improve the profit factor.
The conditions to enter are the same :
long : enter on RSI crossover oversold level
short : enter on RSI crossunder oversell level
To close position, I found a little change to apply :
long : close position when RSI(VWAP) went in overbought zone and crossunder the overbought level OR after being at least x bars in the overbought zone (parameter is 28 by default) => when the first condition happens
short : close position when RSI(VWAP) went in oversold zone and crossover the oversold level OR after being at least x bars in the oversell zone (parameter is 28 by default) => when the first condition happens
With this change, I got better results specially on BTCUSDTPERP (M15) where I reach a 6.8 profit factor with 119 trades closed. Not BAD !
The defaults parameters are the best found for BTCUSDTPERP (M15), but the strategy works fine for other pairs if you take time to find the rights combinations.
In this strategy you can change (with defaults in () ):
RSI length (28)
RSI overbought level (85)
RSI oversell level (30)
Number of bars before leaving as explain above (28)
The choice to take longs only, shorts only or both
The number of coin/token by position
The start date for backtesting
Please note that the script use a pyramiding parameter of 3 (can be changed in the first line of the script); that means that you can take up to 3 positions before closing. It lets you improve average enter price but increase the risk. 3 is the best I found to improve profit factor without expose myself too much.
This script would be better if automated because of the conditions of buy and sell.
It's only for educative purpose, not an advice to invest.
All my free scripts here : fr.tradingview.com
Leave a message and don't forget to follow me ;) !
Support Resistance - DynamicThis is Dynamic Support / Resistance script.
How it Works?
It finds Pivot Points and creates channels for each Pivot Point. Channel size is calculated by (Highest - Lowest) * %Channel_size in Loopback Period. After creating channels it calculates that how many Pivot Points in the channels. more Pivot Points in channel means stronger Support/Resistance. in the option menu there is S/R Strength, this is the minimum number of Pivot Points that each channel must contain to be S/R. calculation starts from last pivot point and go back for "loopback period" which is 300 by default. so last Pivot Points have more priority. Finally after calculating Support/Resistance it draws lines.
Number of Support/Resistance line is Dynamic and up to 20 lines, that means number of lines changes dynamically. you can see how the script puts Suppport/Resistance lines dynamically by "Replay" button. (if I have time I will try to put a video)
Currently the scripts checks up to 40 pivot points in loopback period. it shows up to 20 S/Rs only for visible area in the chart.
There is option to Show S/R lines as Solid, Dotted or Dashed.
Enjoy!
Trend Follower - Light Mode | jhFollow up script for my Trend Follower script.
I'm used to dark mode, so I coded a few key plots in white, so those are changed into black on the script.
Notably:
- > 1 ATR in black dots along the baseline
- Current and previous ATR text labels to the right of the price
- A text label spacing input that allows you to adjust the spacing for text label from price.
This is a trend following system that combines 3 indicators which provide different functionalities, also a concept conceived by VP's No Nonsense FX / NNFX method.
1. Baseline
The main baseline filter is an indicator called Modular Filter created by Alex Grover
- www.tradingview.com
- Alex Grover - Modular Filter
-------
That's the moving average like baseline following price, filtering long and short trends and providing entry signals when the price crosses the baseline.
Entry signal indicated with arrows.
2. Volume/Volatility, I will called it Trend Strength
The next indicator is commonly known as ASH, Absolute Strength Histogram.
This indicator was shared by VP as a two line cross trend confirmation indicator, however I discovered an interesting property when I modified the calculation of the histogram.
- Alex Grover Absolute Strength
-------
My modification and other info here
- Absolute Strength Histogram v2
-------
I simplified the display of the trend strength by plotting squares at the bottom of the chart.
- Lighted Squares shows strength
- Dimmed Squares shows weakness
3. Second Confirmation / Exits / Trailing Stop
Finally the last indicator is my usage of QQE (Qualitative Quantitative Estimation), demonstrated in my QQE Trailing Line Indicator
- QQE Trailing Line for Trailing Stop
-------
Three usages of this amazing indicator, serving as :
- Second trend confirmation
- Exit signal when price crosses the trailing line
- Trailing stop when you scaled out the second trade
This indicator is plotted with crosses.
Additional plots and information
Bar Color
- Green for longs, Red for shorts, White when the baseline direction conflicts with the QQE trailing line direction
- When it's white, it's usually ranging and not trending, ASH will also keep you off ranging periods.
-------
ATR Filter
- White circles along the baseline, they will show up if the price has moved more than one ATR from the baseline
- The default allowance is 1 ATR.
-------
The previous and current ATR value
- Label on the right side of the chart showing the previous and current value of ATR
Trend Direction Helper (ZigZag and S/R and HH/LL labels)Hey everyone
First of all, I'd like to thank Ricardo Santos, Backtest Rookies for the inspiration for this script.
Actually, most of it is coming from them and I only mixed them up (and added my secret sauce ^^). If some of you are not thinking about a trading secret sauce, please get serious for a moment :)
Some of you asked me how I do to set the trend direction. You all understood that if you get an UP label, then the price should go up and vice-versa for down.
But it's not so easy to define the good signals for each asset and each timeframe. I'm going to repeat what I said yesterday because ... well... that's what trading is about
So quoting myself here "The inputs set by default will have to be changed for your asset/timeframe and can't be generic for everything. You have to play with the inputs until the signals will make sense to you
The indicator/strategy with a unique configuration that you'll never check or update according to the market condition DOES NOT exit. "
BUT... a bit of patience and practice and you might do wonders.
The Method
I never realized until now but by connecting the higher highs/lower lows, I was drawing zigzag lines.
The Zig Zag Master is Ricardo Santos . Please give him a follow, he's awesome
For those who don't want to draw on the chart or (my preferred choice) need some inspiration to define your trend directions, this script is for YOU (and your family, your pet, your girlfriend/boyfriend, ...)
I think that each asset/timeframe chart has its own history. What worked in a post could work in the future.
In that regard, if a trend direction worked in the past, that's the parameter that I'll use to trade with it in a demo account and make sure it's relevant. If not then I will adjust
If you're trading with new indicators or a new method right away on your real trading account, you're gonna have a bad time imgflip.com
Lines EVERYWHERE
The script draws the classical horizontal pivots + the zig zag lines + the Higher Highs/Lower Lows label in just 1 script. I'm very excited to share a script (on which I coded 100 lines out of 500) but no one else did it
The horizontal pivots part are coming from Backtest Rookies
For more security, you can add a pullback on a moving average after getting a signal. Pullbacks are necessary to limit any eventual loss or maximize your gains by getting in the trend sooner.
I really give you a solid method and a great script in my opinion. 6 years of experience given away for FREE :p (when Dave will start thinking as a business man instead :O)
Does it repaint ?
Getting this question twice a day. You guys are obsessed with the repainting :)
Short answer, yes because it will calculate the pivots and zig zags whenever new higher highs/lower lows will be formed.
However, the trend direction code is based on the candle close so it shouldn't repaint. If it does, please let me know
See you all on Monday
Love you all
Dave
____________________________________________________________
Be sure to hit the thumbs up. Building those indicators take a lot of time and likes are always rewarding for me :) (tips are accepted too)
- If you want to suggest some indicators that I can develop and share with the community, please use my personal TRELLO board
- I'm an officially approved PineEditor/LUA/MT4 approved mentor on codementor. You can request a coaching with me if you want and I'll teach you how to build kick-ass indicators and strategies
Jump on a 1 to 1 coaching with me
- You can also hire for a custom dev of your indicator/strategy/bot/chrome extension/python
Disclaimer:
Trading involves a high level of financial risk, and may not be appropriate because you may experience losses greater than your deposit. Leverage can be against you.
Do not trade with capital that you can not afford to lose. You must be aware and have a complete understanding of all the risks associated with the market and trading. We can not be held responsible for any loss you incur.
Trading also involves risks of gambling addiction.
Please notice I do not provide financial advice - my indicators, strategies, educational ideas are intended to provide only some source code for anyone interested in improving their trading
The proprietary indicators and strategies developed by Best Trading Indicator, the object of intellectual property rights are and remain the exclusive property of Best Trading Indicator, at the exclusion of images and videos and texts free of rights or provided by the Company or external legal or physical person.
No assignment of intellectual property rights is carried out through these Terms and Conditions.
Any total or partial reproduction, modification or use of these properties for any reason whatsoever is strictly prohibited without the express written authorization of the Company.
Advanced RSI Divergence with Smoothing MAThis script combines RSI Divergence detection with a Smoothing Moving Average (MA) overlay on the RSI, offering traders a powerful tool to identify potential trend reversals and confirm signals. By smoothing the RSI line, the script reduces noise and provides clearer visualization of market conditions, making it easier to spot high-probability trading opportunities.
The script is designed to detect both Regular and Hidden Divergences, which are key indicators of potential trend reversals or continuations. Additionally, it includes a customizable MA overlay on the RSI line, along with optional Bollinger Bands for added volatility insights.
Key Features:
1. RSI Divergence Detection:
Identifies Regular Bullish and Bearish Divergences (potential trend reversals).
Detects Hidden Bullish and Bearish Divergences (potential trend continuations).
Plots clear labels and trendlines on the chart to highlight divergence signals.
2. Smoothing Moving Average (MA):
Adds a customizable MA overlay on the RSI line to smooth out noise and improve signal clarity.
Supports multiple MA types: SMA, EMA, SMMA (RMA), WMA, VWMA.
Optional Bollinger Bands around the MA for additional volatility insights.
3. Customizable Inputs:
Adjustable RSI period, source, and divergence lookback settings.
Configurable MA type, length, and Bollinger Bands settings.
4. Visual Enhancements:
Plots RSI with overbought/oversold levels (70/30).
Adds gradient fills for overbought and oversold regions for better visualization.
Displays the smoothing MA as a yellow line for easy identification.
5. Alerts:
Built-in alerts for Regular Bullish/Bearish Divergences and Hidden Bullish/Bearish Divergences.
Why This Script is Unique:
While RSI divergence detection is a common concept, this script stands out by combining it with a smoothing MA overlay and optional Bollinger Bands on the RSI line. This unique combination:
Reduces noise and false signals by smoothing the RSI line.
Provides additional confirmation of divergence signals through the MA overlay.
Offers flexibility with multiple MA types and customizable settings to adapt to different trading styles and market conditions.
The integration of Bollinger Bands around the MA further enhances the script by providing insights into RSI volatility, which is not commonly available in open-source RSI divergence scripts.
Why Closed-Source:
This script uses a proprietary combination of RSI divergence detection, smoothing MA overlays, and Bollinger Bands to create a unique and highly effective trading tool. The specific logic and calculations used to combine these elements are the result of extensive research and backtesting, and the source code is protected to maintain its competitive edge.
How to Use:
Apply the script to your chart and adjust the RSI and MA settings to suit your trading strategy.
Look for divergence signals (Regular or Hidden) confirmed by the smoothing MA.
Use the Bollinger Bands (if enabled) to gauge RSI volatility and filter out low-probability signals.
Set up alerts for divergence signals to stay informed of potential trading opportunities.
Trend Vanguard StrategyHow to Use:
Trend Vanguard Strategy is a multi-feature Pine Script strategy designed to identify market pivots, draw dynamic support/resistance, and generate trade signals via ZigZag breakouts. Here’s how it works and how to use it:
ZigZag Detection & Pivot Points
The script locates significant swing highs and lows using configurable Depth, Deviation, and Backstep values.
It then connects these pivots with lines (ZigZag) to highlight directional changes and prints labels (“Buy,” “Sell,” etc.) at key turning points.
Support & Resistance Trendlines
Pivot highs and lows are used to draw dashed S/R lines in real-time.
When price crosses these lines, the script triggers a breakout signal (long or short).
EMA Overlays
Up to four EMAs (with customizable lengths and colors) can be overlaid on the chart for added trend confirmation.
Enable/disable each EMA independently via the settings.
Repaint Option
Turning on “Smooth Indicator Lines” (repaint) uses future data to refine past pivots.
This can make historical signals look cleaner but does not reflect true historical conditions.
Turning it off ensures signals remain fixed once they appear.
Strategy Entries & Exits
On each new ZigZag “Buy” or “Sell” signal, the script closes any open position and flips to the opposite side (if desired).
Works with the built-in TradingView Strategy engine for backtesting.
Additional Inputs (Placeholders)
Volume Filter and RSI Filter settings exist but are not fully implemented in the current code. Future versions may incorporate these filters more directly.
How to Use
Add to Chart: Click “Indicators” → “Invite-Only Scripts” (or “My Scripts”) and select “Trend Vanguard Strategy.”
Configure Settings:
Adjust ZigZag Depth, Deviation, and Backstep to fine-tune pivot sensitivity.
Enable or disable each EMA to see how it aligns with market trends.
Toggle “Smooth Indicator Lines” on or off depending on whether you want repainting.
Backtest and Forward Test:
Use TradingView’s “Strategy Tester” tab to review hypothetical performance.
Remember that repainting can alter past signals if enabled.
Monitor Live:
Watch for breakout triangles or ZigZag labels to identify potential reversal or breakout trades in real time.
Disclaimer: This script is purely educational and not financial advice. Always combine it with sound risk management and thorough analysis. Enjoy exploring the script, and feel free to experiment with the different settings to match your trading style!
Price Projector [MacAlgo] Description:
The “Price Projector ” is a Pine Script indicator designed to project possible future price movements based on historical price action. It allows you to select specific historical periods (up to two different reference dates) from which it extracts price change patterns and then applies a user-defined growth factor to create forward projections on your chart.
Key Features:
Dual Projection Capability: Define two distinct reference dates and periods to generate two separate projections.
Customizable Growth Factor: Apply a percentage-based drift or growth rate to your projections.
Adjustable Projection Length: Control how many bars into the future the script will visualize the projected price path.
Connector Lines: Optionally display lines connecting the historical reference points to the current chart position for easy visualization.
Debug Mode: Provides detailed information in a table for troubleshooting and transparency of internal calculations.
How it Works:
1. Reference Date & Data Collection
For each of the two projections, you select a reference date (e.g., 2022-01-01) and a period (number of bars).
Once the script reaches that reference date in the chart’s historical data, it begins storing the daily (or bar-based) price change percentages over the specified period.
2. Price Change Array
These price changes (ratios) are stored in arrays. For instance, if today’s close is 1% higher than yesterday’s, that ratio is recorded as 1.01.
3. Growth Factor Application
When projecting forward, the script replays the collected price change patterns starting from the current close and adjusts each step by a user-defined growth factor (percentage drift).
4. Drawing the Projection
The script creates a series of points (up to the chosen projection length) that represent the possible future price path.
It then draws polylines on the chart to visualize these forward projections.
5. Visualization & Debugging
Optional connector lines can be displayed to illustrate where the script started referencing data.
A debug table (when enabled) shows the validity of each projection, the number of data points collected, and other diagnostic details.
Customization Options:
1. Reference Dates & Periods
Projection 1 Reference Date, Projection 2 Reference Date
Period (bars) for each reference date
2. Growth Factor:
Growth Factor (%) for each projection to simulate additional drift over time
3. Projection Display:
Show Projection 1, Show Projection 2 toggle switches
Projection 1 Color, Projection 2 Color for line styling
Projection Length (bars) to specify how far out the script projects
Line Width to adjust the thickness of the projection lines
Show Connector Lines to connect historical reference points to current price
Debug Mode for displaying extra diagnostic information
Visual Components:
Projection Polylines: Colored lines showing the projected future price path for each reference date.
Connector Lines (Optional): Lines from the historical reference points to the current chart location, aiding in visualization of the historical data range used.
Debug Table (Optional): Displays internal state information such as validity checks, the size of data arrays, and reference bar indices.
Warning Table: Appears if the script fails to find the user-defined reference date in the available data, alerting you to input issues.
How to Use:
1. Add the Script: In TradingView, open the Pine Editor or the Indicators dialog, then add this script to your chart.
2. Configure Inputs:
Set “Projection 1 Reference Date” (and optionally “Projection 2 Reference Date”).
Specify how many bars (Period) you want to analyze for each reference date.
Adjust the “Growth Factor (%)” if you wish to introduce a drift in the projection.
Toggle display options and colors under “Display Settings.”
3. Observe Historical Data: The script will begin collecting price change data once it reaches the defined reference dates in the historical chart.
4. View Projections: As new bars print, the script will calculate and eventually render forward projections when you reach the end of your available chart data or are viewing live bars.
5. Enable Debug Mode (Optional): Check the “Debug Mode” box to see detailed information that can help verify the logic and data collection process.
Important Notes:
The projections are purely a replay of historical percentage changes, optionally scaled by a growth factor. They do not guarantee future performance or price levels.
If the script does not find your specified reference date within the visible or loaded chart data, it will display an error message.
Because it relies on historical data, the script’s behavior and drawn lines can change when chart data updates, or if the data for the reference period is missing.
Disclaimer:
This indicator is for informational and educational purposes only. It is not financial advice or a recommendation to buy or sell any securities or assets. Always conduct your own analysis and/or consult a qualified financial professional before making investment decisions. Use at your own risk.
Kernel Regression Envelope with SMI OscillatorThis script combines the predictive capabilities of the **Nadaraya-Watson estimator**, implemented by the esteemed jdehorty (credit to him for his excellent work on the `KernelFunctions` library and the original Nadaraya-Watson Envelope indicator), with the confirmation strength of the **Stochastic Momentum Index (SMI)** to create a dynamic trend reversal strategy. The core idea is to identify potential overbought and oversold conditions using the Nadaraya-Watson Envelope and then confirm these signals with the SMI before entering a trade.
**Understanding the Nadaraya-Watson Envelope:**
The Nadaraya-Watson estimator is a non-parametric regression technique that essentially calculates a weighted average of past price data to estimate the current underlying trend. Unlike simple moving averages that give equal weight to all past data within a defined period, the Nadaraya-Watson estimator uses a **kernel function** (in this case, the Rational Quadratic Kernel) to assign weights. The key parameters influencing this estimation are:
* **Lookback Window (h):** This determines how many historical bars are considered for the estimation. A larger window results in a smoother estimation, while a smaller window makes it more reactive to recent price changes.
* **Relative Weighting (alpha):** This parameter controls the influence of different time frames in the estimation. Lower values emphasize longer-term price action, while higher values make the estimator more sensitive to shorter-term movements.
* **Start Regression at Bar (x\_0):** This allows you to exclude the potentially volatile initial bars of a chart from the calculation, leading to a more stable estimation.
The script calculates the Nadaraya-Watson estimation for the closing price (`yhat_close`), as well as the highs (`yhat_high`) and lows (`yhat_low`). The `yhat_close` is then used as the central trend line.
**Dynamic Envelope Bands with ATR:**
To identify potential entry and exit points around the Nadaraya-Watson estimation, the script uses **Average True Range (ATR)** to create dynamic envelope bands. ATR measures the volatility of the price. By multiplying the ATR by different factors (`nearFactor` and `farFactor`), we create multiple bands:
* **Near Bands:** These are closer to the Nadaraya-Watson estimation and are intended to identify potential immediate overbought or oversold zones.
* **Far Bands:** These are further away and can act as potential take-profit or stop-loss levels, representing more extreme price extensions.
The script calculates both near and far upper and lower bands, as well as an average between the near and far bands. This provides a nuanced view of potential support and resistance levels around the estimated trend.
**Confirming Reversals with the Stochastic Momentum Index (SMI):**
While the Nadaraya-Watson Envelope identifies potential overextended conditions, the **Stochastic Momentum Index (SMI)** is used to confirm a potential trend reversal. The SMI, unlike a traditional stochastic oscillator, oscillates around a zero line. It measures the location of the current closing price relative to the median of the high/low range over a specified period.
The script calculates the SMI on a **higher timeframe** (defined by the "Timeframe" input) to gain a broader perspective on the market momentum. This helps to filter out potential whipsaws and false signals that might occur on the current chart's timeframe. The SMI calculation involves:
* **%K Length:** The lookback period for calculating the highest high and lowest low.
* **%D Length:** The period for smoothing the relative range.
* **EMA Length:** The period for smoothing the SMI itself.
The script uses a double EMA for smoothing within the SMI calculation for added smoothness.
**How the Indicators Work Together in the Strategy:**
The strategy enters a long position when:
1. The closing price crosses below the **near lower band** of the Nadaraya-Watson Envelope, suggesting a potential oversold condition.
2. The SMI crosses above its EMA, indicating positive momentum.
3. The SMI value is below -50, further supporting the oversold idea on the higher timeframe.
Conversely, the strategy enters a short position when:
1. The closing price crosses above the **near upper band** of the Nadaraya-Watson Envelope, suggesting a potential overbought condition.
2. The SMI crosses below its EMA, indicating negative momentum.
3. The SMI value is above 50, further supporting the overbought idea on the higher timeframe.
Trades are closed when the price crosses the **far band** in the opposite direction of the trade. A stop-loss is also implemented based on a fixed value.
**In essence:** The Nadaraya-Watson Envelope identifies areas where the price might be deviating significantly from its estimated trend. The SMI, calculated on a higher timeframe, then acts as a confirmation signal, suggesting that the momentum is shifting in the direction of a potential reversal. The ATR-based bands provide dynamic entry and exit points based on the current volatility.
**How to Use the Script:**
1. **Apply the script to your chart.**
2. **Adjust the "Kernel Settings":**
* **Lookback Window (h):** Experiment with different values to find the smoothness that best suits the asset and timeframe you are trading. Lower values make the envelope more reactive, while higher values make it smoother.
* **Relative Weighting (alpha):** Adjust to control the influence of different timeframes on the Nadaraya-Watson estimation.
* **Start Regression at Bar (x\_0):** Increase this value if you want to exclude the initial, potentially volatile, bars from the calculation.
* **Stoploss:** Set your desired stop-loss value.
3. **Adjust the "SMI" settings:**
* **%K Length, %D Length, EMA Length:** These parameters control the sensitivity and smoothness of the SMI. Experiment to find settings that work well for your trading style.
* **Timeframe:** Select the higher timeframe you want to use for SMI confirmation.
4. **Adjust the "ATR Length" and "Near/Far ATR Factor":** These settings control the width and sensitivity of the envelope bands. Smaller ATR lengths make the bands more reactive to recent volatility.
5. **Customize the "Color Settings"** to your preference.
6. **Observe the plots:**
* The **Nadaraya-Watson Estimation (yhat)** line represents the estimated underlying trend.
* The **near and far upper and lower bands** visualize potential overbought and oversold zones based on the ATR.
* The **fill areas** highlight the regions between the near and far bands.
7. **Look for entry signals:** A long entry is considered when the price touches or crosses below the lower near band and the SMI confirms upward momentum. A short entry is considered when the price touches or crosses above the upper near band and the SMI confirms downward momentum.
8. **Manage your trades:** The script provides exit signals when the price crosses the far band. The fixed stop-loss will also close trades if the price moves against your position.
**Justification for Combining Nadaraya-Watson Envelope and SMI:**
The combination of the Nadaraya-Watson Envelope and the SMI provides a more robust approach to identifying potential trend reversals compared to using either indicator in isolation. The Nadaraya-Watson Envelope excels at identifying potential areas where the price is overextended relative to its recent history. However, relying solely on the envelope can lead to false signals, especially in choppy or volatile markets. By incorporating the SMI as a confirmation tool, we add a momentum filter that helps to validate the potential reversals signaled by the envelope. The higher timeframe SMI further helps to filter out noise and focus on more significant shifts in momentum. The ATR-based bands add a dynamic element to the entry and exit points, adapting to the current market volatility. This mashup aims to leverage the strengths of each indicator to create a more reliable trading strategy.
G&S SMT### Description of the Pine Script
This Pine Script is designed to identify **Smart Money Technique (SMT)** setups between **Gold (GC1!)** and **Silver (SI1!) Futures** on a **15-minute timeframe**. It specifically looks for divergences between the price movements of Gold and Silver over the last 4 candles and compares it with the next candle's price movement. The script provides **Bullish** and **Bearish** signals for SMT during a specified time range of **8:45 AM EST to 10:30 AM EST**.
### Key Features of the Script:
1. **Futures Symbols**:
- The script uses **Gold Futures (GC1!)** and **Silver Futures (SI1!)** on a 15-minute timeframe to monitor their price movements.
2. **Time Range Filtering**:
- The signals are only active between **8:45 AM EST and 10:30 AM EST**, ensuring that the script only signals within the most relevant trading hours for your strategy.
3. **SMT Calculation (Last 4 Candles vs Next Candle)**:
- **Gold and Silver Price Change Calculation**: The script compares the price changes of **Gold** and **Silver** over the **last 4 candles** and then compares them with the price movement of the **next candle**:
- **Bullish SMT**: Occurs when Gold shows an increase in the last 4 candles while Silver shows a decrease, and both Gold and Silver show an increase in the next candle.
- **Bearish SMT**: Occurs when Gold shows a decrease in the last 4 candles while Silver shows an increase, and both Gold and Silver show a decrease in the next candle.
4. **Bullish and Bearish Signals**:
- **Bullish SMT Signal**: The script will plot a **green** arrow below the bar when a Bullish SMT setup is identified.
- **Bearish SMT Signal**: A **red** arrow above the bar is plotted when a Bearish SMT setup is identified.
5. **Gold and Silver Difference Plot**:
- The difference between the prices of **Gold** and **Silver** is plotted as a **blue line**, giving a visual representation of the relationship between the two assets. When the difference line moves significantly, it can indicate a potential divergence or convergence in the prices of Gold and Silver.
### Script Logic Breakdown:
1. **Price Change for Last 4 Candles**:
- The script calculates the price change for Gold and Silver from the 4th-to-last candle to the last candle.
- `gold_change_last4` and `silver_change_last4` calculate these price differences.
2. **Price Change for Next Candle**:
- It then calculates the price change from the last candle to the next candle.
- `gold_change_next` and `silver_change_next` calculate these price differences.
3. **Bullish SMT Condition**:
- If Gold increased while Silver decreased in the last 4 candles, and both Gold and Silver show an increase in the next candle, it indicates a **Bullish SMT**.
4. **Bearish SMT Condition**:
- If Gold decreased while Silver increased in the last 4 candles, and both Gold and Silver show a decrease in the next candle, it indicates a **Bearish SMT**.
5. **Time Filter**:
- Signals are only plotted when the current time is between **8:45 AM EST and 10:30 AM EST** to match your preferred trading hours.
### Visualization:
- **Bullish Signals**: Plotted as **green arrows** below the bars when a Bullish SMT setup is identified.
- **Bearish Signals**: Plotted as **red arrows** above the bars when a Bearish SMT setup is identified.
- **Gold - Silver Difference**: A **blue line** is plotted to show the price difference between Gold and Silver, helping visualize any divergence.
### How It Helps:
- **Divergence Identification**: This script highlights potential divergences between Gold and Silver Futures, which can provide insights into market sentiment and smart money movements.
- **Focus on Relevant Time Frame**: By filtering signals between 8:45 AM EST and 10:30 AM EST, you are focusing on a timeframe that can be more beneficial for trading.
- **Visual Clarity**: The arrows and the price difference line provide clear signals and a visual representation of the relationship between Gold and Silver, helping you make informed trading decisions.
This script is an automated approach to detecting **SMT setups** and helping traders recognize when Gold and Silver might be signaling a bullish or bearish move based on their divergence patterns.
Weighted Fourier Transform: Spectral Gating & Main Frequency🙏🏻 This drop has 2 purposes:
1) to inform every1 who'd ever see it that Weighted Fourier Tranform does exist, while being available nowhere online, not even in papers, yet there's nothing incredibly complicated about it, and it can/should be used in certain cases;
2) to show TradingView users how they can use it now in dem endevours, to show em what spectral filtering is, and what can they do with all of it in diy mode.
... so we gonna have 2 sections in the description
Section 1: Weighted Fourier Transform
It's quite easy to include weights in Fourier analysis: you just premultiply each datapoint by its corresponding weight -> feed to direct Fourier Transform, and then divide by weights after inverse Fourier transform. Alternatevely, in direct transform you just multiply contributions of each data point to the real and imaginary parts of the Fourier transform by corresponding weights (in accumulation phase), and in inverse transform you divide by weights instead during the accumulation phase. Everything else stays the same just like in non-weighted version.
If you're from the first target group let's say, you prolly know a thing or deux about how to code & about Fourier Transform, so you can just check lines of code to see the implementation of Weighted Discrete version of Fourier Transform, and port it to to any technology you desire. Pine Script is a developing technology that is incredibly comfortable in use for quant-related tasks and anything involving time series in general. While also using Python for research and C++ for development, every time I can do what I want in Pine Script, I reach for it and never touch matlab, python, R, or anything else.
Weighted version allows you to explicetly include order/time information into the operation, which is essential with every time series, although not widely used in mainstream just as many other obvious and right things. If you think deeply, you'll understand that you can apply a usual non-weighted Fourier to any 2d+ data you can (even if none of these dimensions represent time), because this is a geometric tool in essence. By applying linearly decaying weights inside Fourier transform, you're explicetly saying, "one of these dimensions is Time, and weights represent the order". And obviously you can combine multiple weightings, eg time and another characteristic of each datum, allows you to include another non-spatial dimension in your model.
By doing that, on properly processed (not only stationary but Also centered around zero data), you can get some interesting results that you won't be able to recreate without weights:
^^ A sine wave, centered around zero, period of 16. Gray line made by: DWFT (direct weighted Fourier transform) -> spectral gating -> IWFT (inverse weighted Fourier transform) -> plotting the last value of gated reconstructed data, all applied to expanding window. Look how precisely it follows the original data (the sine wave) with no lag at all. This can't be done by using non-weighted version of Fourier transform.
^^ spectral filtering applied to the whole dataset, calculated on the latest data update
And you should never forget about Fast Fourier Transform, tho it needs recursion...
Section 2: About use cases for quant trading, about this particular implementaion in Pine Script 6 (currently the latest version as of Friday 13, December 2k24).
Given the current state of things, we have certain limits on matrix size on TradingView (and we need big dope matrixes to calculate polynomial regression -> detrend & center our data before Fourier), and recursion is not yet available in Pine Script, so the script works on short datasets only, and requires some time.
A note on detrending. For quality results, Fourier Transform should be applied to not only stationary but also centered around zero data. The rightest way to do detrending of time series
is to fit Cumulative Weighted Moving Polynomial Regression (known as WLSMA in some narrow circles xD) and calculate the deltas between datapoint at time t and this wonderful fit at time t. That's exactly what you see on the main chart of script description: notice the distances between chart and WLSMA, now look lower and see how it matches the distances between zero and purple line in WFT study. Using residuals of one regression fit of the whole dataset makes less sense in time series context, we break some 'time' and order rules in a way, tho not many understand/cares abouit it in mainstream quant industry.
Two ways of using the script:
Spectral Gating aka Spectral filtering. Frequency domain filtering is quite responsive and for a greater computational cost does not introduce a lag the way it works with time-domain filtering. Works this way: direct Fourier transform your data to get frequency & phase info -> compute power spectrum out of it -> zero out all dem freqs that ain't hit your threshold -> inverse Fourier tranform what's left -> repeat at each datapoint plotting the very first value of reconstructed array*. With this you can watch for zero crossings to make appropriate trading decisions.
^^ plot Freq pass to use the script this way, use Level setting to control the intensity of gating. These 3 only available values: -1, 0 and 1, are the general & natural ones.
* if you turn on labels in script's style settings, you see the gray dots perfectly fitting your data. They get recalculated (for the whole dataset) at each update. You call it repainting, this is for analytical & aesthetic purposes. Included for demonstration only.
Finding main/dominant frequency & period. You can use it to set up Length for your other studies, and for analytical purposes simply to understand the periodicity of your data.
^^ plot main frequency/main period to use the script this way. On the screenshot, you can see the script applied to sine wave of period 16, notice how many datapoints it took the algo to figure out the signal's period quite good in expanding window mode
Now what's the next step? You can try applying signal windowing techniques to make it all less data-driven but your ego-driven, make a weighted periodogram or autocorrelogram (check Wiener-Khinchin Theorem ), and maybe whole shiny spectrogram?
... you decide, choice is yours,
The butterfly reflect the doors ...
∞
Cumulative Buying and Selling Volume with 3 Lookback PeriodsScript Overview:
This script is designed to help traders identify market momentum by analyzing buying and selling volume. It calculates the cumulative buying and selling pressure over three different lookback periods, providing insights into whether the bulls or bears are dominating at any given time. The script does this by computing the cumulative buying and selling volume for each period and comparing them through exponential moving averages (EMA) to smooth out short-term fluctuations.
Purpose and Use:
The primary goal of this script is to highlight shifts in market sentiment based on volume dynamics. Volume is a critical component in market analysis, often signaling the strength behind price movements. By focusing on cumulative buying and selling pressure, the script gives traders an idea of whether the market is trending towards more buying or selling during specific periods. Traders can use this tool to:
Identify potential entry points when buying pressure is strong.
Recognize potential selling opportunities when selling pressure is increasing.
Detect periods of indecision when neither buying nor selling dominates.
Key Concepts:
1. Buying Volume (BV):
The buying volume is calculated based on the price range of each candle. It represents the volume allocated to the bullish side of the market:
When the close is near the high, the buying volume is higher.
Formula: BV = volume * (close - low) / (high - low).
2. Selling Volume (SV):
Similarly, selling volume is derived based on the position of the close relative to the low:
When the close is near the low, selling volume is higher.
Formula: SV = volume * (high - close) / (high - low)
3. Lookback Periods:
The script allows users to define three different lookback periods (5, 10, and 20 by default). These periods smooth out the cumulative buying and selling volumes using EMA calculations:
Shorter periods capture more immediate changes in volume dynamics.
Longer periods provide a broader perspective on market trends.
4. Cumulative Volume Calculation:
For each lookback period, cumulative buying and selling volumes are tracked separately and then smoothed with EMA:
emaBuyVol and emaSellVol are the smoothed values for buying and selling volumes over the lookback periods.
5. Market Pressure Comparison:
Buying Pressure: If the EMA of buying volume is greater than the EMA of selling volume for a particular lookback period, the script considers that buying pressure dominates for that period.
Selling Pressure: Conversely, if selling volume dominates over buying volume for a period, the script registers selling pressure.
6. Overall Market Pressure:
The script aggregates the buying and selling pressures from the three lookback periods to determine the overall market sentiment:
If the majority of periods show buying pressure, the market is bullish.
If the majority show selling pressure, the market is bearish.
If neither side dominates, it suggests a neutral or indecisive market.
Visual Cues:
The script provides visual feedback to help traders quickly interpret the market pressure:
Background Color:
Green (#2bff00) when buying pressure dominates.
Red (#ff0000) when selling pressure dominates.
Gray (#404040) when there is no clear dominance.
Bar Color: The script also colors the price bars based on the dominant market pressure:
Green for buying pressure.
Red for selling pressure.
Gray for neutral or balanced market pressure.
Reset Mechanism:
At the start of each new candle, the cumulative volumes for all three periods are reset to zero. This ensures that the cumulative volumes are only measured for the current candle, preventing carryover from previous periods that could distort the analysis.
How Traders Can Use This Script:
Trend Confirmation: Traders can use the script as a trend confirmation tool. When the background turns green (buying dominance), it suggests bullish momentum. When red, bearish momentum is likely. This information can be used to confirm existing positions or signal new trades in the direction of the market pressure.
Reversal Detection: A sudden shift in the background color (from green to red or vice versa) can indicate a potential reversal. This can be particularly useful when combined with other technical indicators such as price action or support/resistance levels.
Multiple Timeframes: Since the script supports three different lookback periods, it provides a comprehensive view of market pressure across short-term, medium-term, and long-term perspectives. Traders can tailor the lookback periods based on their preferred timeframe to match their trading style, whether it’s intraday trading or longer-term swing trading.
Risk Management: The script's clear visual cues help traders manage risk by highlighting when selling pressure increases, allowing them to consider reducing long positions or tightening stop-losses.